package com.tedu.day02.oop;

/**
 * 继承关系--多态性
 * 作用：父子级关系，实现方法互通（重写）
 */
class A1{
    public void tell1(){
        System.out.println("A~你好，我是tell1");
    }
    public void tell2(){
        System.out.println("A~你好，我是tell2");
    }
}
class B1 extends A1{
    public void tell2(){
        System.out.println("B~你好，我是tell2");
    }
    public void tell3(){
        System.out.println("B~你好，我是tell3");
    }
}
public class 多态 {
    public static void main(String[] args) {
        //创建B1对象-创建1个对象      子类【不存在造型，没有造型】
//        B1 b=new B1();
//        A1 a=b;  //子类交给父类保存   向上造型
//        //实现方法互通 调用父类与子类的方法
//        a.tell1();//父类中方法
//        a.tell2();//重写：方法互通
        //向下造型：实现方法互通，调用父类与子类的方法
        //①向上造型一次：父类的引用指向子类对象
        A1 a=new B1();
        //②子类接受：向上造型1次引用，并且强转
        B1 b=(B1)a;
        b.tell1();//父类的方法
        b.tell2();//重写：父类的方法---输出子类
        b.tell3();//子类的方法
    }
}
